From 6702c2ed98e5ce60571849ab53521c0246dae133 Mon Sep 17 00:00:00 2001 From: justbur Date: Sun, 20 Dec 2015 15:31:57 -0500 Subject: [PATCH] Add which-key-show-minor-mode-keymap Version of which-key-show-keymap that only looks in minor-mode-map-alist --- which-key.el | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/which-key.el b/which-key.el index 4a9d11c222a..329e0a19089 100644 --- a/which-key.el +++ b/which-key.el @@ -1823,17 +1823,41 @@ prefix) if `which-key-use-C-h-commands' is non nil." (which-key--show-page page-n) loc2)))) -(defun which-key-show-keymap (keymap) - "Show the top-level bindings in KEYMAP using which-key." - (interactive (list (intern - (completing-read "Keymap: " obarray - (lambda (m) (and (boundp m) (keymapp (symbol-value m)))) - t nil 'variable-name-history)))) +(defun which-key-show-keymap () + "Show the top-level bindings in KEYMAP using which-key. KEYMAP +is selected interactively from all available keymaps." + (interactive) + (let ((map + (symbol-value + (intern + (completing-read "Keymap: " obarray + (lambda (m) (and (boundp m) (keymapp (symbol-value m)))) + t nil 'variable-name-history))))) + (if (equal map (make-sparse-keymap)) + (message "which-key: %s is empty" map) + (which-key--show-keymap map)))) + +(defun which-key-show-minor-mode-keymap () + "Show the top-level bindings in KEYMAP using which-key. KEYMAP +is selected interactively by mode in `minor-mode-map-alist'." + (interactive) + (let* ((mode (intern + (completing-read + "Minor Mode: " + (cl-remove-if-not (lambda (mode) (symbol-value mode)) + (mapcar 'car minor-mode-map-alist)) + nil t nil 'variable-name-history))) + (map (cdr (assq mode minor-mode-map-alist)))) + (if (equal map (make-sparse-keymap)) + (message "which-key: %s's keymap is empty" mode) + (which-key--show-keymap map)))) + +(defun which-key--show-keymap (keymap) (setq which-key--current-prefix nil which-key--using-top-level t) - (when (and (boundp keymap) (keymapp (symbol-value keymap))) + (when (keymapp keymap) (let ((formatted-keys (which-key--get-formatted-key-bindings - (which-key--get-keymap-bindings (symbol-value keymap)))) + (which-key--get-keymap-bindings keymap))) (prefix-keys (key-description which-key--current-prefix))) (cond ((= (length formatted-keys) 0) (message "%s- which-key: There are no keys to show" prefix-keys)) -- 2.30.2